home *** CD-ROM | disk | FTP | other *** search
/ Internet Info 1994 March / Internet Info CD-ROM (Walnut Creek) (March 1994).iso / inet / ien / ien-90 < prev    next >
Text File  |  1988-12-01  |  10KB  |  392 lines

  1.  
  2. 2 May 1979
  3.  
  4.  
  5. IEN 90
  6.                                     
  7.                                     
  8.                                     
  9.                                     
  10.                                     
  11.                                     
  12.                          Multiplexing Protocol
  13.                                     
  14.                                     
  15.                                     
  16.                                     
  17.                               Danny Cohen
  18.                                     
  19.                                Jon Postel
  20.  
  21.  
  22.  
  23.  
  24.  
  25.  
  26.  
  27.  
  28.  
  29.  
  30.  
  31.  
  32.  
  33.  
  34.                                2 May 1979
  35.                                     
  36.                                     
  37.                                     
  38.  
  39.                      Information Sciences Institute
  40.                    University of Southern California
  41.                            4676 Admiralty Way
  42.                    Marina del Rey, California  90291
  43.  
  44.                              (213) 822-1511
  45.  
  46.  
  47.  
  48.  
  49.  
  50. IEN-90                                                          D. Cohen
  51.                                                                J. Postel
  52.                                                                      ISI
  53.                                                               2 May 1979
  54.  
  55.  
  56.  
  57.                          Multiplexing Protocol
  58.                          ---------------------
  59.  
  60. Introduction
  61. ------------
  62.  
  63. This  Multiplexing  Protocol  is  defined  to  allow  the  combining  of
  64. transmission   units  of  different   higher   level  protocols  in  one
  65. transmission  unit of a lower level protocol.   Only messages  with  the
  66. same Internet  Protocol  (IN) [1] header, with the possible exception of
  67. the protocol  field  may be combined.  For example, the msg (H1, B1) and
  68. the message  (H2, B2), where Hi and Bi are the headers and the bodies of
  69. the messages,  respectively,  may  be  combined  (multiplexed)  only  if
  70. H=H1=H2.  The combined messages are either (H, B1, B2) or (H, B2, B1).
  71.  
  72. Since (H,D1)+(H,D2)=(H,D1+D2)  resembles  the notion  of  factoring,  we
  73. sometime refer to this process as "factoring".
  74.  
  75. The receiver  of this combined  message  should  treat  it as if the two
  76. original  messages,  (H,D1),  and (H,D2),  arrived separately, in either
  77. order.
  78.  
  79. The multiplexing  is achieved  by  combining  the  individual  messages,
  80. (H,B1)  through  (H,Bn), into a single message.  This single message has
  81. an IN header  which  is equal to H, but having in the PROTOCOL field the
  82. value 18 which is the protocol  number  of  the  multiplexing  protocol.
  83. This IN header  is followed  by all the message  bodies,  B1 through Bn.
  84. Each message  body,  Bi,  is preceeded  by a 4 octet multiplexing  link.
  85. This link contain  the number  of the protocol  to which  this  body  is
  86. addressed.   It also contain  the total length  of this portion (message
  87. body),  including  this multiplexing  link.   Since  this  link  is  not
  88. otherwise  protected  by a checksum,  it also includes  a checksum field
  89. which covers this multiplexing link.
  90.  
  91. If an error is discovered in a checksum of some multiplexing header, the
  92. rest of the message, starting there, is ignored.
  93.  
  94. If an unknown  PROTOCOL  field is discovered in any multiplexing header,
  95. this section, and only this one, is ignored.
  96.  
  97.  
  98.  
  99.  
  100. Cohen & Postel                                                  [page 1]
  101.  
  102.  
  103.                                                               2 May 1979
  104. Multiplexing Protocol                                             IEN-90
  105. Introduction
  106.  
  107.  
  108.  
  109. The  demultiplexing   routine  should  be  able  to  handle  recursively
  110. multiplexed  messages.   This is  to  allow  higher  level  protocol  to
  111. demultiplex  their own messages  if they can be combined.   Since such a
  112. multiplexed  message  may be  multiplexed  again  by  the  IN  level,  a
  113. multi-level multiplexing results.
  114.  
  115. This protocol  assumes  that  the  Internet  Protocol  is  used  as  the
  116. underlying protocol.
  117.  
  118. Format
  119. ------
  120.  
  121.                                     
  122.                   0      7 8     15 16            31  
  123.                  +--------+--------+----------------+ 
  124.                  |        |        |                | 
  125.                  |   CS   |Protocol|      Length    | 
  126.                  |        |        |                | 
  127.                  +--------+--------+----------------+ 
  128.  
  129.                        Multiplexing Header Format
  130.  
  131. Fields
  132. ------
  133.  
  134. CS is a checksum  covering  only this 32 bit multiplexing header.  Until
  135. further notice, it is the exclusive OR of the other three octets in this
  136. header.
  137.  
  138. Protocol is the number of the following protocol.
  139.  
  140. Length is the length in octets of this header and the following protocol
  141. block.  Hence, it must be at least 4.
  142.  
  143.  
  144.  
  145.  
  146.  
  147.  
  148.  
  149.  
  150.  
  151.  
  152.  
  153.  
  154.  
  155.  
  156.  
  157.  
  158. [page 2]                                                  Cohen & Postel
  159.  
  160.  
  161. 2 May 1979
  162. IEN-90                                             Multiplexing Protocol
  163.                                                                  Example
  164.  
  165.  
  166.  
  167. Example
  168. -------
  169.  
  170.                                     
  171.                   0              15 16             31  
  172.                  +--------+--------+--------+--------+ 
  173.                  |   CS   |Protocol|      Length     | 
  174.                  +--------+--------+--------+--------+ 
  175.                  |  a transmission unit              | 
  176.                  |                 of some protocol  | 
  177.                  +--------+--------+--------+--------+ 
  178.                  |   CS   |Protocol|      Length     | 
  179.                  +--------+--------+--------+--------+ 
  180.                  |  a transmission unit              | 
  181.                  |                 of some protocol  | 
  182.                  +--------+--------+--------+--------+ 
  183.                  |   CS   |Protocol|      Length     | 
  184.                  +--------+--------+--------+--------+ 
  185.                  |  a transmission unit              | 
  186.                  |                 of some protocol  | 
  187.                  +--------+--------+--------+--------+ 
  188.  
  189.                      Multiplexing Protocol Concept
  190.  
  191.  
  192.  
  193.  
  194.  
  195.  
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202.  
  203.  
  204.  
  205.  
  206.  
  207.  
  208.  
  209.  
  210.  
  211.  
  212.  
  213.  
  214.  
  215.  
  216. Cohen & Postel                                                  [page 3]
  217.  
  218.  
  219.                                                               2 May 1979
  220. Multiplexing Protocol                                             IEN-90
  221. Example
  222.  
  223.  
  224.  
  225.                                     
  226.                0              15 16             31        
  227.               +--------+--------+--------+--------+       
  228.               |   CS   |datagram|     Length = 20 | ----+ 
  229.               +--------+--------+--------+--------+     | 
  230.               | source socket   |   dest. socket  |     | 
  231.               +--------+--------+--------+--------+     | 
  232.               |     length = 8  |     checksum    |     | 
  233.               +--------+--------+--------+--------+     | 
  234.               |                data               |     | 
  235.               +--------+--------+--------+--------+     | 
  236.               |                data               |     | 
  237.               +--------+--------+--------+--------+ <---+ 
  238.               |   CS   |  TCP   |     Length = 32 | ----+ 
  239.               +--------+--------+--------+--------+     | 
  240.               |   source port   | destination port|     | 
  241.               +--------+--------+--------+--------+     | 
  242.               |          sequence number          |     | 
  243.               +--------+--------+--------+--------+     | 
  244.               |       acknowledgment number       |     | 
  245.               +--------+--------+--------+--------+     | 
  246.               |offset    control|      window     |     | 
  247.               +--------+--------+--------+--------+     | 
  248.               |     checksum    |  urgent pointer |     | 
  249.               +--------+--------+--------+--------+     | 
  250.               |                data               |     | 
  251.               +--------+--------+--------+--------+     | 
  252.               |                data               |     | 
  253.               +--------+--------+--------+--------+ <---+ 
  254.               |   CS   |datagram|     Length = 16 | ----+ 
  255.               +--------+--------+--------+--------+     | 
  256.               | source socket   |   dest. socket  |     | 
  257.               +--------+--------+--------+--------+     | 
  258.               |     length = 4  |     checksum    |     | 
  259.               +--------+--------+--------+--------+     | 
  260.               |                data               |     | 
  261.               +--------+--------+--------+--------+ <---+ 
  262.  
  263.                      Multiplexing Protocol Example
  264.  
  265. Protocol Application
  266. --------------------
  267.  
  268. The major use of this protocol  is to allow several  transmission  units
  269. from differing  (or the same) higher level protocols to be combined into
  270. one transmission unit of a lower level protocol.
  271.  
  272.  
  273.  
  274. [page 4]                                                  Cohen & Postel
  275.  
  276.  
  277. 2 May 1979
  278. IEN-90                                             Multiplexing Protocol
  279.                                                          Protocol Number
  280.  
  281.  
  282.  
  283. Protocol Number
  284. ---------------
  285.  
  286. This is protocol  18 (22 octal)  when used  in  the  Internet  Protocol.
  287. Other protocol numbers are listed in [2].
  288.  
  289. Notes
  290. -----
  291.  
  292. -  If so desired,  one has the  option  of  applying  this  multiplexing
  293.    protocol recursively.
  294.  
  295. -  The receiving  process  should  never be able to tell if its messages
  296.    were multiplexed  or not.  The multiplexing is totally transparent to
  297.    the higher lever protocols.
  298.  
  299. -  Information  from the  external  header  (e.g.,  the  IN  header)  is
  300.    available to each protocol in the multiplexed message.
  301.  
  302.  
  303.  
  304.  
  305.  
  306.  
  307.  
  308.  
  309.  
  310.  
  311.  
  312.  
  313.  
  314.  
  315.  
  316.  
  317.  
  318.  
  319.  
  320.  
  321.  
  322.  
  323.  
  324.  
  325.  
  326.  
  327.  
  328.  
  329.  
  330.  
  331.  
  332. Cohen & Postel                                                  [page 5]
  333.  
  334.  
  335.                                                               2 May 1979
  336. Multiplexing Protocol                                             IEN-90
  337. References
  338.  
  339.  
  340.  
  341. References
  342. ----------
  343.  
  344. [1]     Postel,  J.,  "Internet Datagram Protocol -- Version 4," IEN-80,
  345.         USC-Information Sciences Institute, February 1979.
  346.  
  347. [2]     Postel,   J.,   "Assigned   Numbers,"  USC-Information  Sciences
  348.         Institute, RFC-755, IEN 93, May 1979.
  349.  
  350.  
  351.  
  352.  
  353.  
  354.  
  355.  
  356.  
  357.  
  358.  
  359.  
  360.  
  361.  
  362.  
  363.  
  364.  
  365.  
  366.  
  367.  
  368.  
  369.  
  370.  
  371.  
  372.  
  373.  
  374.  
  375.  
  376.  
  377.  
  378.  
  379.  
  380.  
  381.  
  382.  
  383.  
  384.  
  385.  
  386.  
  387.  
  388.  
  389.  
  390. [page 6]                                                  Cohen & Postel
  391.  
  392.